package DAO;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;

import to.Determinacao;
import to.SolicitacaoDeterminacao;
import util.HibernateUtil;
import visao.SolicitacaoDeterminacaoVO;

public class SolicitacaoDeterminacaoDAO {

	public List<SolicitacaoDeterminacao> pesquisarPorDeterminacao(
			Determinacao determinacao) throws Exception {
		List<SolicitacaoDeterminacao> listaRetorno = null;
		try {
			Session session = HibernateUtil.getSessionFactory().openSession();
			Criteria criteria = session
					.createCriteria(SolicitacaoDeterminacao.class);
			criteria.add(Restrictions.eq("determinacao", determinacao));
			listaRetorno = criteria.list();
		} catch (Exception e) {
			throw new Exception(e.getMessage());
		}
		return listaRetorno;
	}

	public List<SolicitacaoDeterminacao> buscarSolicitacaoDeterminacaoPorSolicitacao(
			Integer solicitacao) {

		List<SolicitacaoDeterminacao> listaRetorno = null;

		try {

			Session session = HibernateUtil.getSessionFactory().openSession();
			Criteria criteria = session
					.createCriteria(SolicitacaoDeterminacao.class);
			criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
			criteria.createAlias("solicitacao", "s");
			criteria.add(Restrictions.eq("s.codigo", solicitacao));
			criteria.addOrder(Order.asc("s.codigo"));
			listaRetorno = (List<SolicitacaoDeterminacao>) criteria.list();

		} catch (Exception e) {
			e.printStackTrace();
		}

		return listaRetorno;
	}

	
}
